Electronic memory is used in computer systems and electronic devices to store data, programs, and the like. The integrity of the memory is important for operation of the computer systems and/or devices associated with the memory. For example, if memory is corrupted data stored in the memory may be lost or programs stored in the memory may execute incorrectly or not at all.
Buffer overrun errors and underrun errors are common causes of memory corruption. Buffer overrun and underrun errors are conditions wherein a software program writes beyond the boundaries of a memory buffer block, leading to corruption of adjacent memory blocks. The effects of buffer overrun and underrun are unpredictable. In some cases, the effects show up immediately in the form of a CPU fault and in some cases the corruption is so subtle that it simply goes undetected for long periods of time.